In today's information technology industry, customers desire systems that have better performance and cost improvements over their current systems, while permitting continued use of their existing applications. High availability is also important given today's rising mobile workforce and ability for global connectivity through the Internet. Current processing system designs for information technology applications must be scalable, and provide granular growth and continuous application availability. Clustering technology, such as IBM Corporation's S/390 Parallel Sysplex, has been developed to achieve these design needs.
A cluster links individual data processing systems in a manner that creates a single, powerful system, which can support numerous users simultaneously. A cluster offers high availability and excellent scalability. If one system/node in the cluster fails, the other systems in the cluster continue to run.
Cluster technology provides many advantages in a parallel database management system. For example, FIG. 1 illustrates a sysplex environment 100 of three computers 101–103 sharing disk space such as a pool 110 of storage devices, e.g., disk drives, 111–113 where a database resides. Each computer 101–103 includes a database management system (DBMS) member 121–123 and an associated log dataset 151–153 for managing a commit or roll back of a unit of work. Each log dataset 151–153 can only be accessed by the DBMS member that owns it. Each DBMS member 121–123 knows how to communicate with other DBMS members, and each knows how to manage the pool of data 110 that is common to them. A coupling facility 120 links the computers 101–103 to one another and to the pool 110 of storage devices 111–113. The coupling facility 120 also includes a Work Load Manager (WLM) 124 that manages, monitors and balances the workload of each DBMS member 121–123.
The sysplex 100 is accessible to a plurality of client systems 140 via a network connection 145, typically a TCP/IP network. For clarity, only one client 140 is illustrated in FIG. 1. The client 140 could be another parallel sysplex or a workstation or other personal computer. The client 140 views the sysplex 100 as one image, i.e., the client 140 views the sysplex as a single remote database, and not as a plurality of discrete DBMS members 121–123. When the client 140 wishes to submit a request or command to the database, the client 140 need only initiate communication with one DBMS member, e.g. 121, of the sysplex 100. In order to gain access to the one member 121, the client 140 sends a message to a domain name server (DNS)130 asking for a network address, e.g. IP address, of a computer 101–103 in the sysplex 100 containing an active DBMS member 121–123.
The DNS 130 is tightly coupled to, i.e., integrated with, the Work Load Manager (WLM) 124, and keeps a directory of all of the different groups of computers, i.e. sysplexes, on the network, and their respective IP addresses. Each group of computers is given a domain name, such as “system1.vnet.ibm.com,” and each computer in the group has a separate IP address. The client 140 registers with the DNS 130 that its databases are part of the system called “system1.vnet.ibm.com.” Because the DNS 130 maintains the IP addresses, the client 140 is not required to hard code the IP addresses of the individual computers. Thus, when the client 140 submits its request to connect to a database to the DNS 130, the client 140 identifies the domain name of the database location and the DNS 130 resolves the domain name to a given group of IP addresses.
In further response to the client's 140 request, the DNS 130 checks with the WLM 124 to determine which DBMS members 121–123 are active and on which computers 101–103 they reside. The DNS 130 will then send a message back to the client 140 containing the IP address of a computer 101, 102, 103 that contains an active DBMS member for that named group. In a sysplex environment supporting workload balancing, the IP address returned by the DNS 130 to the client 140 is that of the computer having the least loaded DBMS member. In order to determine the least loaded member, the DNS 130 communicates with the WLM 124, which also monitors the workload of each DBMS member 121–123. The client 140 then utilizes that IP address to establish an initial connection with the corresponding computer containing the DBMS member in the sysplex.
Once the initial connection is made between the client 140 and the one DBMS member, e.g., 121, the DBMS member 121 returns to the client 140 a list (not shown) of active DBMS members and their respective workloads, i.e., a weighted list. The list allows the client to distribute work evenly across the active members of the database sysplex.
This configuration provides data sharing and workload balancing for a plurality of clients. However, the tight coupling of the DNS 130 to the WLM 124 presents several problems. First, DNSs have not been installed on many sysplex systems and customers are reluctant to integrate a DNS into their existing TCP/IP networks. Without the DNS 130, the client 140 cannot establish contact with the database and the distributed sysplex strategy fails. Second, even if a WLM enabled DNS is installed, a latency is associated with the exchange of information between the WLM and the DNS. Thus, if the client 140 is a gateway sending multiple requests to the DNS 130, the delay due to the latency can impair performance. Third, because the DNS is typically a UNIX based application and the WLM is a database application, integration between the WLM and the DNS is complicated and difficult.
Accordingly, a need exists for a method and system that supports workload balancing in a sysplex system and improves the performance of such a system. The method and system should be easily implemented and should not require extensive modifications of existing systems. The present invention addresses such a need.